package com.wangjie.doublepointer;

/**
 * @author jieshao
 * @date 2022/4/25 17:29
 *
 * 27. 移除元素
 *
 * 注意这里和有序数组去重的解法有一个重要不同，我们这里是先给 nums[slow] 赋值，然后再给 slow++，这样可以保证 nums[0..slow-1] 是不包含
 * 值为 val 的元素的，最后的结果数组长度就是 slow
 */
public class Test08 {
    public int removeElement(int[] nums, int val) {
        int slow = 0;
        int fast = 0;
        while (fast < nums.length) {
            if (nums[fast] != val) {
                nums[slow] = nums[fast];
                slow++;
            }
            fast++;
        }
        return slow;
    }
}